Solid state drives (SSDs) provide higher input/output (I/O) performance and lower latencies compared to traditional hard drives. Datacenters and enterprises use SSDs as data storage devices for their increased intolerance for latencies. Although SSDs provide low read and write (or I/O) latencies, they have unavoidable background activities such as media erasure and associated garbage collection (GC) requirements that can add hidden latencies. These hidden latencies can appear during I/O operations, making quality of service (QoS) for the I/O transactions inconsistent. Different SSD vendors have adopted various mechanisms to address these hidden latency issues. A common approach to obtain consistent latencies for SSD I/O operations is to provide a software controlled solution to control and manage background activities in a host software layer.
A typical software controlled solution addresses the hidden latency issues by disabling background management operations in an SSD and implementing them in a host software layer (e.g., a global flash translation layer (FTL)). The SSD can have control mechanisms to selectively enable/disable the background management operations. These software-controlled solutions have commoditized SSDs by pushing so-called “intelligence” for managing background operations to an I/O stack layer of a host operating system.
While software controlled approaches are workable solutions to mitigate the hidden latency issues, the intended commoditization depreciates and underutilizes the prominence, control, and differentiation that the present SSDs enjoy. The software controlled approaches may provide solutions that may work with some storage drive vendors, but they may add more prominence to a host software layer while limiting the controllability and manageability of the SSDs. To remedy this, operating system (OS) vendors have attempted to provide an up-level control on different device types through standardization.
However, software controlled approaches that provide generically applied intelligence may not be suitable for all drive types and all background management operations. Some of the software controlled solutions are limited only to garbage collection operations of an SSD. Further, the software controlled solutions do not necessarily account for forthcoming changes and improvements in technology that may affect the media layout and complexities of the controller architecture. For example, a new SSD technology may adopt a new bookkeeping scheme for erase blocks/zones, new block counts, new block size logical-to-physical (L2P) mappings, etc.
Device manufacturers usually have better knowledge regarding the organization of the operations and data layout for their own hardware than a generic software layer of a host OS. With emerging technologies such as 3D vertical NAND, generalized software controlled approaches to control and manage SSD background operations may not be appropriate. For example, a host OS layer such as a global flash-translation layer (FTL) that is intended for mitigating hidden latency issues of SSDs may not account for the layout and controller architecture complexities of the SSDs. As the stacking technology becomes denser, the actual I/O data distribution can become even more convoluted since a SSD vendor may choose to RAID/stripe or invoke specific placements based on hardware capabilities and product-specific designs. It is even more important that the SSD vendor chooses to keep that control for the best I/O path, latency management, and endurance. Further, host-managed algorithms tend to consume expensive CPU cycles and limit the performance of the system while consuming additional power.